package done.easy_901_1000;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

/**
 * 925. Long Pressed Name 长按键入
 * 你的朋友正在使用键盘输入他的名字 name。偶尔，在键入字符 c 时，按键可能会被长按，而字符可能被输入 1 次或多次。
 * 你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字（其中一些字符可能被长按），那么就返回 True。
 * <p>
 * 示例 1：
 * 输入：name = "alex", typed = "aaleex"
 * 输出：true
 * 解释：'alex' 中的 'a' 和 'e' 被长按。
 * 示例 2：
 * 输入：name = "saeed", typed = "ssaaedd"
 * 输出：false
 * 解释：'e' 一定需要被键入两次，但在 typed 的输出中不是这样。
 * 提示
 * name.length <= 1000
 * typed.length <= 1000
 * name 和 typed 的字符都是小写字母。
 * <p>
 * 可以通过快慢指针的方法解决
 * 2019-03-24 8:32 AM
 **/
@Slf4j
public class LongPressedName {

    @SuppressWarnings("all")
    public boolean isLongPressedName(String name, String typed) {
        // 190324 first
        return false;
    }

    @Test
    public void test() {
        String name = "aleex";
        String typed = "aaleex";
        log.info("result:{}", isLongPressedName(name, typed));
    }
}





















/*
public boolean isLongPressedName(String name, String typed) {
    int i=0;
    int nLen = name.length();
    int tLen = typed.length();
    for(int j = 0; i < nLen && j < tLen; j++) {
        // i是慢指针，j是快指针，相等时移动一次
        if(name.charAt(i) == typed.charAt(j)) {
            i++;
        // 当走到这一步的时候说明 i, j 不同步，如果 i-1 和 j 不相等
        // 说明错了直接返回就可以了
        } else if(i == 0 || name.charAt(i-1) != typed.charAt(j)) {
            return false;
        }
    }
    return i == nLen;
}
*/
